package com.ktjiaoyu.server.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ktjiaoyu.server.pojo.Admin;
import com.ktjiaoyu.server.pojo.AdminLoginParam;
import com.ktjiaoyu.server.pojo.RespBean;
import com.ktjiaoyu.server.pojo.Role;

import javax.servlet.http.HttpServletRequest;
import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author jjx
 * @since 2024-01-23
 */
public interface IAdminService extends IService<Admin> {

   public RespBean login(AdminLoginParam adminLoginParam, HttpServletRequest request);

   // 根据用户名获取用户的完整对象
   public Admin getAdminByUserName(String username);

   /**
    * 分页显示管理员列表
    * @param page 分页所需要的Page集合
    * @param query 查询条件(按用户名或手机号模糊查询)
    */
   IPage<Admin> selectByPage(Page<Admin> page, String query, String sort);

   // 保存操作员新增信息
   boolean saveAdmin(Admin admin);

   // 修改操作员信息
   boolean updateAdmin(Admin admin);

   //通过用户ID查询用户所拥有的角色列表，以及每个角色所拥有的权限列表
   List<Role> findRolesAndMenusByAdminId(Integer adminId);

   // 通过操作员用户ID查询其拥有的角色列表
   List<Role> findRolesByAdminId(Integer adminId);

   // 通过操作员用户ID查询其拥有菜单URL集合
   List<String> findMenuUrlByAdminId(Integer adminId);

}
